﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace YemekteyizLib.Bs
{
    public class UrunProvider
    {
        /// <summary>
        /// Restorant admin sayfasında urun üzerinde yapılan değişiklikleri kaydetmek içindir.
        /// </summary>
        /// <param name="u"></param>
        public static void Kaydet(Urun u)
        {
            SqlCommand cmd = new SqlCommand("update Urunler set UrunAdi=@p1, Aciklama=@p2, Fiyat=@p3,GrupID=@p4, ResimYolu=@p5 where UrunID = @ID");
            cmd.Parameters.AddWithValue("@p1", u.Adi);
            cmd.Parameters.AddWithValue("@p2", u.Aciklama);
            cmd.Parameters.AddWithValue("@p3", u.Fiyat);
            cmd.Parameters.AddWithValue("@p4", u.Grubu.ID);
            cmd.Parameters.AddWithValue("@p5", u.ResimYolu);
            cmd.Parameters.AddWithValue("@ID", u.ID);

            cmd.Connection = Tools.GetConnection();

            cmd.ExecuteNonQuery();

            Tools.CloseConnection();

        }


        /// <summary>
        /// Urunun detayı gösterilecek sayfa içindir.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static Urun GetByID(int id)
        {
            SqlCommand cmd = new SqlCommand("select urunAdi,aciklama,fiyat,grupID,resimYolu from Urunler where UrunID = @ID");
            cmd.Parameters.AddWithValue("@ID", id);

            cmd.Connection = Tools.GetConnection();
            SqlDataReader rdr = cmd.ExecuteReader();

            Urun u = new Urun();

            int grupID = 0;

            if (rdr.HasRows)
            {
                rdr.Read();
                u.ID = id;
                u.Adi = rdr.GetString(0);
                u.Aciklama = rdr.GetString(1);
                u.Fiyat = rdr.GetDouble(2);
                grupID = rdr.GetInt32(3);
                u.ResimYolu = rdr.IsDBNull(4) ? "" : rdr.GetString(4);
            }
            Tools.CloseConnection();

            u.Grubu = GrupProvider.GetById(grupID);
            return u;


            Sepet s = new Sepet();
            

        }

        /// <summary>
        /// Restorana tıklandıktan sonra gelen gruplar içerisindeki ürünleri yansıtabilmek amacıyla kullanılır.
        /// </summary>
        /// <param name="grup"></param>
        /// <returns></returns>
        public static List<Urun> GetByGrup(Grup grup)
        {
            SqlCommand cmd = new SqlCommand("select * from Urunler where GrupID = @ID");
            cmd.Parameters.AddWithValue("@ID", grup.ID);

            cmd.Connection = Tools.GetConnection();
            SqlDataReader rdr = cmd.ExecuteReader();

            List<Urun> donecek = new List<Urun>();


            if (rdr.HasRows)
            {
                while (rdr.Read())
                {
                    Urun u = new Urun();
                    u.ID = rdr.GetInt32(0);
                    u.Adi = rdr.GetString(1);
                    u.Aciklama = rdr.GetString(2);
                    u.Fiyat = rdr.GetDouble(3);
                    u.Grubu = grup;
                    u.ResimYolu = rdr.IsDBNull(5) ? "" : rdr.GetString(5);
                    donecek.Add(u);
                }

            }
            Tools.CloseConnection();

            return donecek;


        }
    }
}
